
package com.snail.mobile.sim.oss.userInfo.service;

import java.util.Collection;
import java.util.List;

import com.sungrid.seine.oss.framework.service.BaseManager;
import com.snail.mobile.sim.oss.userInfo.model.UserInfo;
import com.snail.mobile.sim.oss.userInfo.model.UserInfoResult;

public interface UserInfoManager extends BaseManager
{
    /**
     * Retrieves all of the userInfos
     */
    public List getUserInfos(UserInfo userInfo);

    /**
     * Gets userInfo's information based on nid.
     * @param nid
     *            the userInfo's nid
     * @return userInfo populated userInfo object
     */
    public UserInfo getUserInfo(final String nid);

    /**
     * Gets userInfo's information based on nid.
     * @param nid
     *            the userInfo's nid
     * @return userInfo populated userInfo object
     */
    public UserInfo getUserInfoSimple(final String nid);

    /**
     * Saves a userInfo's information
     * @param userInfo 
     *            the object to be saved
     */
    public void saveUserInfo(UserInfo userInfo);

    /**
     * Removes a userInfo from the database by nid
     * @param nid
     *            the userInfo's nid
     */
    public void removeUserInfo(final String nid);

    /**
     * Removes the userInfos from the database
     * @param userInfos
     *            the userInfos to be removed
     */
    public void removeUserInfos(final Collection userInfos);

    /**
     * Saves the userInfos from the database
     * @param userInfos
     *            the userInfos to be saved
     */
    public void saveUserInfos(final Collection userInfos);
    public UserInfoResult getUserInfoFromBilling(String opIp,String sphone);
}

